Methods and apparatus for providing search results in response to an ambiguous search query

ABSTRACT

Methods and apparatus consistent with the invention allow a user to submit an ambiguous search query and to receive relevant search results. In one embodiment, a sequence of numbers received from a user of a standard telephone keypad is translated into a set of potentially corresponding alphanumeric sequences. These potentially corresponding alphanumeric sequences are provided as an input to a conventional search engine, using a boolean “OR” expression, and the search results are presented to the user. The search engine effectively limits search results to those in which the user was likely interested.

RELATED APPLICATION

[0001] This application claims priority under 35 U.S.C. §119(e) based onU.S. Provisional Application Serial No. 60/216,530, entitled DATA ENTRYAND SEARCH FOR HANDHELD DEVICES, filed on Jul. 6, 2000, the disclosureof which is herein incorporated by reference in its entirety.

BACKGROUND OF THE INVENTION

[0002] A. Field of the Invention

[0003] This invention relates generally to methods and apparatus forproviding search results in response to an ambiguous search queryprovided by a user.

[0004] B. Description of the Related Art

[0005] Most search engines operate under the assumption that the enduser is entering search queries using something like a conventionalkeyboard, where the input of alphanumeric strings is not difficult. Assmall devices become more common, however, this assumption is not alwaysvalid. For example, users may query search engines using a wirelesstelephone that supports the WAP (Wireless Application Protocol)standard. Devices such as wireless telephones typically have a datainput interface wherein a particular action by the user (e.g., pressinga key) may correspond to more than one alphanumeric character. Adetailed description of WAP architecture is available athttp://www1.wapforum.org/tech/documents/SPEC-WAPArch-19980439.pdf (“WAP100 Wireless Application Protocol Architecture Specification”).

[0006] In the usual case, the WAP user navigates to the search querypage, and is presented with a form into which they input their searchquery. With conventional methods, the user may be required to pressmultiple keys to select a particular letter. On a standard telephonekeypad, for example, the user would select the letter “b” by pressingthe “2” key twice, or would select the letter “s” by pressing the “7”key four time. Accordingly, to enter a query for “ben smith”, the userwould ordinarily need to enter the following string of keypresses:223366077776444844, which map to letters as follows:

[0007] 22→b

[0008] 33→e

[0009] 66→n

[0010] 0→space

[0011] 7777→s

[0012] 6→m

[0013] 444→i

[0014] 8→t

[0015] 44→h

[0016] After the user has entered their search request, the searchengine receives the word or words from the user, and proceeds in muchthe same manner as if it had received the request from a desktop browserwherein the user employed a conventional keyboard.

[0017] As can be seen from the foregoing example, this form of dataentry is inefficient in that it requires eighteen keystrokes to enterthe nine alphanumeric characters (including the space) corresponding to“ben smith”. Others have attempted to overcome the limitations imposedby reduced data entry devices, but each of the approaches developed thusfar has shortcomings. There remains, therefore, a need for methods andapparatus for providing relevant search results in response to anambiguous search query.

SUMMARY OF THE INVENTION

[0018] Methods and apparatus consistent with the present invention, asembodied and broadly described herein, provide relevant search resultsin response to an ambiguous search query. Consistent with the invention,such a method includes receiving a sequence of ambiguous informationcomponents from a user. The method obtains mapping information that mapsthe ambiguous information components to less ambiguous informationcomponents. This mapping information is used to translate the sequenceof ambiguous information components into one or more correspondingsequences of less ambiguous information components. One or more of thesesequences of less ambiguous information are provided as an input to asearch engine. The search results are obtained from the search engineand are presented to the user.

BRIEF DESCRIPTION OF THE DRAWINGS

[0019] The accompanying drawings, which are incorporated in, andconstitute a part of, this specification illustrate an embodiment of theinvention and, together with the description, serve to explain theadvantages and principles of the invention. In the drawings,

[0020]FIG. 1 illustrates a block diagram of a system in which methodsand apparatus consistent with the present invention map be implemented;

[0021]FIG. 2 illustrates a block diagram of a client device, consistentwith the invention;

[0022]FIG. 3 illustrates a diagram depicting three documents;

[0023]FIG. 4a illustrates a conventional alphanumeric index;

[0024]FIG. 4b illustrates a flow diagram for providing search results inresponse to a conventional alphanumeric search query;

[0025]FIG. 5a illustrates a flow diagram, consistent with the invention,for providing search results in response to an ambiguous search query;

[0026]FIG. 5b illustrates a diagram for mapping alphanumeric informationto numeric information; and

[0027]FIG. 6 illustrates another flow diagram, consistent with theinvention, for providing search results in response to an ambiguoussearch query.

DETAILED DESCRIPTION

[0028] Reference will now be made in detail to an embodiment of thepresent invention as illustrated in the accompanying drawings. The samereference numbers may be used throughout the drawings and the followingdescription to refer to the same or like parts.

[0029] A. Overview

[0030] Methods and apparatus consistent with the invention allow a userto submit an ambiguous search query and to receive potentiallydisambiguated search results. In one embodiment, a sequence of numbersreceived from a user of a standard telephone keypad is translated into aset of potentially corresponding alphanumeric sequences. Thesepotentially corresponding alphanumeric sequences are provided as aninput to a conventional search engine, using a boolean “OR” expression.In this manner, the search engine is used to help limit search resultsto those in which the user was likely interested.

[0031] B. Architecture

[0032]FIG. 1 illustrates a system 100 in which methods and apparatus,consistent with the present invention, may be implemented. The system100 may include multiple client devices 110 connected to multipleservers 120 and 130 via a network 140. The network 140 may include alocal area network (LAN), a wide area network (WAN), a telephonenetwork, such as the Public Switched Telephone Network (PSTN), anintranet, the Internet, or a combination of networks. Two client devices110 and three servers 120 and 130 have been illustrated as connected tonetwork 140 for simplicity. In practice, there may be more or lessclient devices and servers. Also, in some instances, a client device mayperform the functions of a server and a server may perform the functionsof a client device.

[0033] The client devices 110 may include devices, such mainframes,minicomputers, personal computers, laptops, personal digital assistants,or the like, capable of connecting to the network 140. The clientdevices 110 may transmit data over the network 140 or receive data fromthe network 140 via a wired, wireless, or optical connection.

[0034]FIG. 2 illustrates an exemplary client device 110 consistent withthe present invention. The client device 110 may include a bus 210, aprocessor 220, a main memory 230, a read only memory (ROM) 240, astorage device 250, an input device 260, an output device 270, and acommunication interface 280.

[0035] The bus 210 may include one or more conventional buses thatpermit communication among the components of the client device 110. Theprocessor 220 may include any type of conventional processor ormicroprocessor that interprets and executes instructions. The mainmemory 230 may include a random access memory (RAM) or another type ofdynamic storage device that stores information and instructions forexecution by the processor 220. The ROM 240 may include a conventionalROM device or another type of static storage device that stores staticinformation and instructions for use by the processor 220. The storagedevice 250 may include a magnetic and/or optical recording medium andits corresponding drive.

[0036] The input device 260 may include one or more conventionalmechanisms that permit a user to input information to the client device110, such as a keyboard, a mouse, a pen, voice recognition and/orbiometric mechanisms, etc. The output device 270 may include one or moreconventional mechanisms that output information to the user, including adisplay, a printer, a speaker, etc. The communication interface 280 mayinclude any transceiver-like mechanism that enables the client device110 to communicate with other devices and/or systems. For example, thecommunication interface 280 may include mechanisms for communicatingwith another device or system via a network, such as network 140.

[0037] As will be described in detail below, the client devices 110,consistent with the present invention, perform certain searching-relatedoperations. The client devices 110 may perform these operations inresponse to processor 220 executing software instructions contained in acomputer-readable medium, such as memory 230. A computer-readable mediummay be defined as one or more memory devices and/or carrier waves. Thesoftware instructions may be read into memory 230 from anothercomputer-readable medium, such as the data storage device 250, or fromanother device via the communication interface 280. The softwareinstructions contained in memory 230 causes processor 220 to performsearch-related activities described below. Alternatively, hardwiredcircuitry may be used in place of or in combination with softwareinstructions to implement processes consistent with the presentinvention. Thus, the present invention is not limited to any specificcombination of hardware circuitry and software.

[0038] The servers 120 and 130 may include one or more types of computersystems, such as a mainframe, minicomputer, or personal computer,capable of connecting to the network 140 to enable servers 120 and 130to communicate with the client devices 110. In alternativeimplementations, the servers 120 and 130 may include mechanisms fordirectly connecting to one or more client devices 110. The servers 120and 130 may transmit data over network 140 or receive data from thenetwork 140 via a wired, wireless, or optical connection.

[0039] The servers may be configured in a manner similar to thatdescribed above in reference to FIG. 2 for client device 110. In animplementation consistent with the present invention, the server 120 mayinclude a search engine 125 usable by the client devices 110. Theservers 130 may store documents (or web pages) accessible by the clientdevices 110.

[0040] C. Architectural Operation

[0041]FIG. 3 illustrates a diagram depicting three documents, which maybe stored for example on one of the servers 130.

[0042] A first document (Document 1) contains two entries—“car repair”and “car rental”—and is numbered “3” at its bottom. A second document(Document 2) contains the entry “video rental”. A third document(Document 3) contains three entries—“wine”, “champagne”, and “baritems”—and includes a link (or reference) to Document 2.

[0043] For the sake of illustrative simplicity, the documents shown inFIG. 3 only contain alphanumeric strings of information (e.g., “car”,“repair”, “wine”, etc.). Those skilled in the art will recognize,however, that in other situations the documents could contain othertypes of information, such as phonetic, or audiovisual information.

[0044]FIG. 4a illustrates a conventional alphanumeric index, based onthe documents shown in FIG. 3. The first column of the index contains alist of alphanumeric terms, and the second column contains a list of thedocuments corresponding to those terms. Some terms, such as thealphanumeric term “3”, only correspond to (e.g., appear in) onedocument—in this case Document 1. Other terms, such as “rental”,correspond to multiple documents—in this case Documents 1 and 2.

[0045]FIG. 4b illustrates how a conventional search engine, such assearch engine 125, would use the index illustrated in FIG. 4a to providesearch results in response to an alphanumeric search query. Thealphanumeric query may be generated using any conventional technique.For purposes of illustration, FIG. 4b depicts two alphanumeric queries:“car” and “wine”. Under a conventional approach, search engine 125receives an alphanumeric query, such as “car” (stage 410), and uses thealphanumeric index to determine which documents correspond to that query(stage 420). In this example, a conventional search engine 125 would usethe index illustrated in FIG. 4a to determine that “car” corresponds toDocument 1 and would return Document 1 (or a reference to it) to theuser as a search result. Similarly, a conventional search engine woulddetermine that “wine” corresponds to Document 3 and would returnDocument 3 (or a reference to it) to the user (stage 430).

[0046]FIG. 5a illustrates a flow diagram, consistent with the invention,of a preferred technique for providing search results in response to anumeric search query, based on the documents and index shown in FIGS. 3and 4a, respectively. For the sake of illustrative ease, FIG. 5adescribes a particular technique for processing a numeric query based onthe mapping of a standard telephone handset; but those skilled in theart will recognize that other techniques consistent with the inventionmay be used.

[0047] At stage 510, a sequence “227” (consisting of numeric components“2”, “2”, and “7”) is received from a user. At stage 520, information isobtained about how the numeric components map to letters. Assuming thatthe user entered the information from a standard telephone keypad, thismapping information is shown in FIG. 5b. As shown in FIG. 5b, theletters “a”, “b”, and “c” each map to the number “1”, the letters “p”,“q”, “r”, and “s” each map to the number “7”, and so forth.

[0048] At stage 530, using this mapping information, the sequence “227”is translated into its potential alphanumeric equivalents. Based on theinformation shown in FIG. 5b, there exist 36 possible combinations ofletters that correspond to the sequence “227”, including the following:aap, bap, cap, abp, bbp, . . . bar . . . car . . . ccs. If numbers areincluded in the possible combinations (e.g., “aa7”), there would exist80 possible combinations. Rather than generating all possiblealphanumeric equivalents, it may be desirable to limit the generatedequivalents based on some lexicon. For example, it may be desirable togenerate only those alphanumeric equivalents that appear in adictionary, search engine log of previous search queries, etc.; or tootherwise limit the alphanumeric equivalents by using known statisticaltechniques (e.g., the probability of certain words appearing together).

[0049] At stage 540, these alphanumeric equivalents are provided as aninput to a conventional search engine, such as that described inreference to FIGS. 4a and 4 b, using a logical “OR” operation. Forexample, the search query provided to the search engine could be “aap ORbap OR cap OR abp . . . OR bar . . . OR car”. Although all possiblealphanumeric equivalents may be provided to the search engine, a subsetmay instead be used by using conventional techniques to eliminateequivalents that are unlikely to be intended. For example, one couldgenerate a narrower list of possible combinations by using techniquesthat draw upon probabilistic information about the usage of letters orwords: one could ignore combinations that begin with “qt” but include(and favor) combinations that begin with “qu.”

[0050] At stage 550, search results are obtained from the search engine.Because terms such as “aap” and “abp” do not appear in the searchengine's index, they are effectively ignored. Indeed, the only termscontained within the index shown in FIG. 4b are “car” and “bar”, and sothe only search results returned are those that reference Documents 1and 3. At stage 560, these search results are presented to the user. Thesearch results may be presented in the same order provided by the searchengine, or may be reordered based on considerations such as the languageof the user. Assuming that the user was only interested in documentscontaining the term “bar”, the user would receive an undesired result(Document 3) in addition to the desired result (Document 1). This may bean acceptable price to pay, however, for the benefit of the user onlyhaving to press three keys to formulate the search query.

[0051]FIG. 6 illustrates another flow diagram, consistent with theinvention, of a preferred technique for providing search results inresponse to a numeric search query, based on the documents and indexshown in FIGS. 3 and 4a, respectively. This flow diagram demonstrateshow increasing the size of the received sequence can help limit searchresults to those desired by the user. For the sake of illustrative ease,FIG. 6 again describes a particular technique for processing a numericquery based on the mapping of a standard telephone handset; but thoseskilled in the art will recognize that other techniques consistent withthe invention may be used.

[0052] At stage 610, a sequence “227 48367” (consisting of numericcomponents “2”, “2”, “7”, “4”, “8”, “3”, “6”, “7”) is received from auser. For the sake of explanation, the sequence “227” will be called a“number word” and the entire sequence “227 48367” will be called a“number phrase.” The possible alphanumeric equivalents of a number wordwill be called “letter words” and the possible alphanumeric equivalentsof a number phrase will be called “letter phrases.”

[0053] At stage 620, information is obtained about how the numericcomponents map to letters. Assuming the same mapping information is usedas shown in FIG. 5b, at stage 630, the number phrase “227 48367” istranslated into potentially corresponding letter phrases. Based on theinformation shown in FIG. 5b, there exist 11664 possible letter phrasesthat correspond to the sequence “227 48367”.

[0054] At stage 640, these letter phrases are provided as an input to aconventional search engine, such as that described in reference to FIGS.4a and 4 b, using a logical “OR” operation. For example, the searchquery provided to the search engine could be “‘aap gtdmp’ OR ‘aap htdmp’. . . OR ‘bar items’ . . . OR ‘car items’”. Although all possible letterphrases may be provided to the search engine, a subset may instead beused by employing conventional techniques to eliminate letter phrasesthat are unlikely to be intended.

[0055] At stage 650, search results are obtained from the search engine.Because many search engines are designed to rank highly those documentsthat contain the exact phrase sought, Document 3 would likely be thehighest ranked search result (i.e., because it contains the exact phrase“bar items”). No other document in the example contains one of the otherletter phrases generated at stage 620. Furthermore, many search enginesdownweight (or eliminate) search results that contain individual partsof a phrase but not the entire phrase. For example, Document 1 would bedownweighted or eliminated because it contains the letter word “car”,which corresponds to the first part of the letter phrase, but it doesnot contain any letter word that corresponds to the second part of theletter phrase. Finally, letter phrases such as “aap htdmp” areeffectively ignored because they contain no letter words that appear inthe search engine's index.

[0056] At stage 660, the search results are presented to the user. Inthe example shown, the first result shown to the user would be Document3, which is likely most relevant to the user's query. Document 1 may beeliminated altogether, because it does not contain one of the possibleletter phrases. In this manner, the user is provided with the mostrelevant search results.

[0057] Although the descriptions above in reference to FIGS. 5 and 6 aremade in reference to receiving numeric information and mapping it toalphanumeric information, those skilled in the art will recognize thatother implementations are possible consistent with the invention. Forexample, instead of receiving a sequence of numbers corresponding to thekeys pressed by a user, the received sequence may consist of the firstletters corresponding to the keys pressed by the user. In other words,instead of receiving “227”, the received sequence may be “aap”.Consistent with the invention, the equivalents letter sequencesgenerated in stages 530 or 630 could then be other letter sequences(e.g., “bar”) that correspond to “aap.” Indeed, the received sequencemay contain phonetic, audiovisual, or any other type of informationcomponents.

[0058] Regardless of the form in which the sequence is received, it isgenerally preferred that the received sequence be translated into asequence that corresponds to the format in which information is storedin the search engine's index. For example, if the search engine's indexis stored in alphanumeric format, the received sequence should betranslated into alphanumeric sequences.

[0059] Furthermore, it is generally preferred that the mapping techniquethat is used to translate the received sequence of informationcomponents be the same technique that is employed at the user's deviceto map the user's input to the information generated by the device.There may, however, be instances where it is preferable to use adifferent mapping technique than is used for user input.

[0060] D. Conclusion

[0061] As described in detail above, methods and apparatus consistentwith the invention provide search results in response to an ambiguoussearch query. The foregoing description of an implementation of theinvention has been presented for purposes of illustration anddescription. Modifications and variations are possible in light of theabove teachings or may be acquired from practicing the invention.

[0062] For example, although the foregoing description is based on aclient-server architecture, but those skilled in the art will recognizethat a peer-to-peer architecture may be used consistent with theinvention. Moreover, although the described implementation includessoftware, the invention may be implemented as a combination of hardwareand software or in hardware alone. Additionally, although aspects of thepresent invention are described as being stored in memory, one skilledin the art will appreciate that these aspects can also be stored onother types of computer-readable media, such as secondary storagedevices, like hard disks, floppy disks, or CD-ROM; a carrier wave fromthe Internet; or other forms of RAM or ROM. The scope of the inventionis therefore defined by the claims and their equivalents.

What is claimed is:
 1. A method of providing search results in responseto an ambiguous search query, the ambiguous search query consisting of asequence of ambiguous information components: receiving a sequence ofambiguous information components from a user; obtaining mappinginformation that maps the ambiguous information components to lessambiguous information components; using the mapping information totranslate the sequence of ambiguous information components into one ormore corresponding sequences of less ambiguous information components;providing one or more of the sequences of less ambiguous information asan input to a search engine; obtaining search results from the searchengine; and presenting the search results to the user.
 2. The method ofclaim 1, wherein the mapping information is based on the configurationof a standard telephone keypad.
 3. The method of claim 2, wherein theambiguous information components comprise numbers and the less ambiguousinformation components comprise letters.
 4. The method of claim 1,wherein each of the ambiguous information components comprises a singlepress of a key and the less ambiguous information comprises letters thatcorrespond to the key.
 5. The method of claim 1, wherein the ambiguousinformation components comprise phonemes.
 6. The method of claim 5,wherein the less ambiguous information components comprise alphanumericinformation.
 7. The method of claim 1, wherein the ambiguous informationcomponents comprise visual information.
 8. The method of claim 1,wherein the act of using comprises using the mapping information incombination with a lexicon to translate the sequence of ambiguousinformation components into one or more corresponding sequences of lessambiguous information components.
 9. The method of claim 8, wherein thelexicon is a dictionary.
 10. The method of claim 8, wherein the lexiconis a list of sequences of less ambiguous information components thatpreviously have been processed by the search engine.
 11. The method ofclaim 1, wherein the act of providing comprises providing at least twosequences of less ambiguous information components to the search engineusing a logical “OR” operation.
 12. The method of claim 11, wherein theact of providing comprises: determining a subset of the translatedsequences of less ambiguous information components; and providing thesubset of translated sequences of less ambiguous information componentsas an input to a search engine.
 13. The method of claim 12, wherein theact of determining comprises comparing the translated sequences of lessambiguous information components against a lexicon.
 14. The method ofclaim 12, wherein the act of determining comprises comparing thetranslated sequences of less ambiguous information components against asearch query log.
 15. The method of claim 12, wherein the act ofdetermining comprises using statistical information about theco-occurrence of the less ambiguous information components within thesequence.
 16. A method of providing search results in response to anambiguous search query, comprising: receiving a sequence of informationcomponents from a user, each information component corresponding to akey press; obtaining mapping information that maps the informationcomponents to other information components corresponding to the same keypress; using the mapping information to determine other sequences ofinformation components; providing one or more of the received sequenceand the other sequences as an input to a search engine; obtaining searchresults from the search engine; and presenting the search results to theuser.
 17. The method of claim 16, wherein the mapping information isbased on the configuration of a standard telephone keypad.
 18. Themethod of claim 17, wherein the received information components comprisenumbers and the other information components comprise letters.
 19. Themethod of claim 17, wherein both the received and other informationcomponents comprise letters.
 20. The method of claim 16, wherein the actof providing comprises providing at least two sequences to the searchengine using a logical “OR” operations.
 21. A method of providing searchresults to a user in response to an ambiguous search query, comprising:receiving a string of numbers; translating the string of numbers into aplurality of letter strings based on mapping information; providing atleast one of the letter strings as a search query to a search engine;obtaining search results from the search engine in response to thesearch query; and presenting the search results to a user.
 22. Themethod of claim 21, wherein the mapping information is based on astandard telephone keypad.
 23. The method of claim 21, wherein the actof providing comprises providing at least two of the letter strings as asearch query to a search engine using a logical “OR” operation.
 24. Amethod of providing search results to a user in response to an ambiguoussearch query, comprising: receiving a number word; translating thenumber word into one or more letter words based on mapping information;providing at least one of the letter words as a search query to a searchengine; obtaining search results from the search engine in response tothe search query; and providing the search results to a user.
 25. Themethod of claim 24, wherein the providing step comprises providing aplurality of the letter words as a search query to a search engine usinga logical “OR” operation.
 26. A method of providing search results to auser in response to an ambiguous search query, comprising: receiving atleast two number words constituting a number phrase; translating eachnumber word into one or more letter words based on mapping information;forming one or more letter phrases that correspond to the number phrase;providing at least one of the letter phrases as a search query to asearch engine; obtaining search results from the search engine inresponse to the search query; and providing the search results to auser.
 27. The method of claim 26, wherein the providing step comprisesproviding at least two of the letter phrases as a search query to asearch engine using a logical “OR” operation.
 28. The method of claim26, wherein the mapping information is based on a standard telephonekeypad.
 29. A method of providing search results in response to anambiguous search query received from a client device, the ambiguoussearch query consisting of a sequence of ambiguous informationcomponents: receiving at a server device a sequence of ambiguousinformation components from a client device; obtaining at the serverdevice mapping information that maps the ambiguous informationcomponents to less ambiguous information components; using the mappinginformation in combination with a dictionary to translate, at the serverdevice, the sequence of ambiguous information components into one ormore corresponding sequences of less ambiguous information components.30. A computer-readable medium containing one or more instructions forproviding search results in response to an ambiguous search query, theambiguous search query consisting of a sequence of ambiguous informationcomponents, the instructions comprising: receiving a sequence ofambiguous information components from a user; obtaining mappinginformation that maps the ambiguous information components to lessambiguous information components; using the mapping information totranslate the sequence of ambiguous information components into one ormore corresponding sequences of less ambiguous information components;providing one or more of the sequences of less ambiguous information asan input to a search engine; obtaining search results from the searchengine; and presenting the search results to the user.
 31. An apparatusfor providing search results in response to an ambiguous search query,the ambiguous search query consisting of a sequence of ambiguousinformation components, comprising: at least one memory having programinstructions, and at least one processor configured to execute theprogram instructions to perform the operations of: receiving a sequenceof ambiguous information components from a user; obtaining mappinginformation that maps the ambiguous information components to lessambiguous information components; using the mapping information totranslate the sequence of ambiguous information components into one ormore corresponding sequences of less ambiguous information components;providing one or more of the sequences of less ambiguous information asan input to a search engine; obtaining search results from the searchengine; and presenting the search results to the user.
 32. An apparatusfor providing search results in response to an ambiguous search query,the ambiguous search query consisting of a sequence of ambiguousinformation components, comprising: means for receiving a sequence ofambiguous information components from a user; means for obtainingmapping information that maps the ambiguous information components toless ambiguous information components; means for using the mappinginformation to translate the sequence of ambiguous informationcomponents into one or more corresponding sequences of less ambiguousinformation components; means for providing one or more of the sequencesof less ambiguous information as an input to a search engine; means forobtaining search results from the search engine; and means forpresenting the search results to the user.